package com.example.testanimation;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;


import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import com.example.testanimation.javabean.Courses;


public class AddClass extends AppCompatActivity {
    /*类中定义了几个私有成员变量，包括一个 MySQLiteOpenHelper1 对象，
    它是一个帮助类，用于操作SQLite数据库，以及几个 EditText 对象，用于用户输入课程名称、教师名称、时间、地点等信息。*/
    private com.example.testanimation.MySQLiteOpenHelper1 mySQLiteOpenHelper;
    private EditText medcourseName,medteacherName,mtime,mlocatil;

/*onCreate 方法是活动生命周期中的一个方法，当活动第一次被创建时调用。在这里，它设置了活动的布局（setContentView），
初始化了数据库帮助对象，并通过 find 方法获取了布局中的 EditText 控件的引用。*/
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Compiler EdgeToEdge = null;
        EdgeToEdge.enable();
        setContentView(R.layout.activity_add_class);
        mySQLiteOpenHelper = new com.example.testanimation.MySQLiteOpenHelper1(this);
        find();
        Courses courses = new Courses();

    }
    /*find 方法通过 findViewById 方法获取了布局文件中定义的 EditText 控件的引用，并将其赋值给类的成员变量。*/
    public  void find()
    {
        medcourseName=findViewById(R.id.ed_courseName);
        medteacherName=findViewById(R.id.ed_teacherName);
        mtime=findViewById(R.id.ed_Time);
        mlocatil=findViewById(R.id.ed_location);
    }


/*add_class 方法是一个点击事件处理器，当用户点击某个按钮时触发。它首先从 EditText 控件中获取用户输入的文本。
然后，它创建了一个 Courses 对象，并将获取的文本作为参数传递给该对象的构造函数。*/
    public void add_class(View view) {
        // 获取输入框的值
        String s1 = medcourseName.getText().toString();
        String s2 = medteacherName.getText().toString();
        String s3 = mtime.getText().toString();
        String s4 = mlocatil.getText().toString();


        // 创建Courses对象
        Courses cour = new Courses(s1, s2, s3, s4);
/*使用 AlertDialog.Builder 创建了一个对话框，询问用户是否确认添加课程。如果用户点击“确认”，则会调用数据库帮助对象的 register 方法将 Courses 对象
添加到数据库中。如果添加成功，会显示一个Toast提示用户；如果失败，则显示另一个Toast提示可能的错误。如果用户点击对话框中的“取消”，则对话框关闭，不执行任何操作。*/
        // 使用AlertDialog询问用户是否确认添加
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("确认添加")
                .setMessage("您确定要添加这门课程吗？")
                .setPositiveButton("确认", (dialog, which) -> {
                    // 用户点击确认，执行添加操作
                    long register = mySQLiteOpenHelper.register(cour);
                    if (register != -1) {
                        Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
                    } else {
                        Toast.makeText(this, "添加失败，可能用户名被占用或出现其他错误", Toast.LENGTH_SHORT).show();
                    }
                })
                .setNegativeButton("取消", (dialog, which) -> {
                    // 用户点击取消，不执行任何操作，对话框关闭
                    dialog.cancel();
                })
                .create()
                .show();
    }
    }
